/* 
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
var app = angular.module("produccion", []);

app.controller('Produccion', function($scope, $filter, $http){
    $scope.produccion = {
        Fecha: null,
        IdArea: null,
        IdCentroTrabajo:null,
        IdEmpleado:null,
        IdMaquina:null,
        IdProduccion:null,
        IdProduccionEstatus:null,
        IdSubProceso:null,
        Lances:null,
    };
    
    $scope.maquinas = [];
    $scope.empleados = [];
    $scope.detalles = [];
    $scope.programaciones = [];
    $scope.fallas = [];
    $scope.TiemposMuertos = [];
    
    $scope.indexProgramacion = null;
    $scope.indexMaquina = null;

    $scope.loadEmpleados = function(depto){
        return $http.get('empleados',{params:{depto:depto}}).success(function(data) {
            $scope.empleados = data;
        });
    };
    
    $scope.loadMaquinas = function(){
        return $http.get('maquinas',{params:{IdSubProceso:$scope.produccion.IdSubProceso}}).success(function(data) {
            $scope.maquinas = data;
        });
    };
    
    $scope.selectMaquina = function(){
        $scope.produccion.IdMaquina = $scope.maquinas[$scope.indexMaquina].IdMaquina;
    };
    
    /********************************************************************
     *                        ENCABEZADO DE PRODUCCION
     *******************************************************************/
    
    $scope.loadProduccion = function(){
        return $http.get('produccion',{params:$scope.produccion}).success(function(data) {
            console.log(data);
            $scope.produccion = data;
            $scope.loadDetalle();
            $scope.loadTiempos();
        });
    };
    
    $scope.actualizarProduccion = function (){
        if($scope.produccion.IdProduccion != null){
            return $http.get('produccion',{params:{IdSubProceso:$scope.produccion.IdSubProceso}}).success(function(data) {
                console.log(data);
                $scope.produccion = data;
            });
        }
    };
    
    /********************************************************************
     *                        DETALLE DE PRODUCCION
     *******************************************************************/
    
    $scope.loadDetalle = function(){
        return $http.get('detalle',{params:{
                IdProduccion: $scope.produccion.IdProduccion,
            }}).success(function(data) {
            console.log(data);
            $scope.detalles = [];
            $scope.detalles = data;
        });
    };
    
    $scope.addDetalle = function() {
        console.log($scope.programaciones[$scope.indexProgramacion]);
        if($scope.produccion.IdProduccion != null){
            $scope.inserted = {
                idProduccionDetalle: null,
                IdProduccion:$scope.produccion.IdProduccion,
                IdProgramacion:$scope.programaciones[$scope.indexProgramacion].IdProgramacion,
                IdProductos:$scope.programaciones[$scope.indexProgramacion].IdProducto,
                Inicio:'00:00:00',
                Fin:'00:00:00',
                CiclosMolde: $scope.programaciones[$scope.indexProgramacion].CiclosMolde,
                PiezasMolde: $scope.programaciones[$scope.indexProgramacion].PiezasMolde,
                Programadas: $scope.programaciones[$scope.indexProgramacion].Programadas,
                Hechas: 0,
                Rechazadas: 0,
                Eficiencia: $scope.maquinas[$scope.indexMaquina].Eficiencia,
                idProductos: {Identificacion:$scope.programaciones[$scope.indexProgramacion].Producto},
            };
            $scope.detalles.push($scope.inserted);
        }
    };
    
    $scope.saveDetalle = function(index){
        var dat = $scope.detalles[index];
        console.log(dat);
        //$scope.detalles[index].IdProduccionDetalle = parseInt($scope.detalles[index].IdProduccionDetalle);
        return $http.get('save-detalle',{params:{datos:dat,Fecha:$scope.produccion.Fecha}}).success(function(data) {
            console.log(data);
            $scope.actualizarProgramacion();
            $scope.loadDetalle();
            $scope.loadProgramacion();
        });
    };
    
    $scope.deleteDetalle = function(index){
        var dat = $scope.detalles[index];
        console.log(dat);
        //$scope.detalles[index].IdProduccionDetalle = parseInt($scope.detalles[index].IdProduccionDetalle);
        return $http.get('save-detalle',{params:dat}).success(function(data) {
            console.log(data);
            $scope.detalles = data;
        });
    };

    /********************************************************************
     *                        PROGRAMACION
     *******************************************************************/
    $scope.loadProgramacion = function(){
        return $http.get('programacion',{params:{
                Dia: $scope.produccion.Fecha,
                IdArea: $scope.produccion.IdArea,
                IdSubProceso: $scope.produccion.IdSubProceso,
            }}).success(function(data) {
            console.log(data);
            $scope.programaciones = [];
            $scope.programaciones = data;
        });
    };
    
    $scope.actualizarProgramacion = function(){
        return $http.get('save-programacion',{
            params:$scope.programaciones[$scope.indexProgramacion]
        }).success(function(data) {
            console.log(data);
            $scope.loadProgramacion();
        });
    };
    
    $scope.selectProgramacion = function(index){
        console.log(index);
        console.log($scope.indexProgramacion);
        if($scope.indexProgramacion != null){
            $scope.programaciones[$scope.indexProgramacion].Class = "";
            $scope.indexProgramacion = null;
        }
        $scope.indexProgramacion = index;
        $scope.programaciones[$scope.indexProgramacion].Class = "info";
    }
    
    /********************************************************************
     *                        CONTROL DE FALLAS
     *******************************************************************/
    
    $scope.loadFallas = function(){
        return $http.get('fallas',{params:{
                IdSubProceso: $scope.produccion.IdSubProceso,
            }}).success(function(data) {
            console.log(data);
            $scope.fallas = [];
            $scope.fallas = data;
        });
    };
    
    $scope.loadTiempos = function(){
        return $http.get('tiempos',{params:{
                IdMaquina: $scope.produccion.IdMaquina,
                Fecha: $scope.produccion.Fecha,
            }}).success(function(data) {
            console.log(data);
            $scope.TiemposMuertos = [];
            $scope.TiemposMuertos = data;
        });
    };
    
    $scope.addFalla = function() {
        if($scope.produccion.IdProduccion != null){
            $scope.inserted = {
                IdTiempoMuerto: null,
                IdMaquina: $scope.produccion.IdMaquina,
                Fecha: $scope.produccion.Fecha,
                IdCausa: null,
                Inicio:'00:00:00',
                Fin:'00:00:00',
                Descripcion:'',
            };
            $scope.TiemposMuertos.push($scope.inserted);
        }
    };
    
    $scope.saveFalla = function(index){
        var dat = $scope.TiemposMuertos[index];
        console.log(dat);
        //$scope.detalles[index].IdProduccionDetalle = parseInt($scope.detalles[index].IdProduccionDetalle);
        return $http.get('save-fallas',{params:{datos:dat,Fecha:$scope.produccion.Fecha}}).success(function(data) {
            console.log(data);
            $scope.actualizarProgramacion();
            $scope.loadDetalle();
            $scope.loadProgramacion();
        });
    };
    
    $scope.deleteFalla = function(index){
        var dat = $scope.detalles[index];
        console.log(dat);
        //$scope.detalles[index].IdProduccionDetalle = parseInt($scope.detalles[index].IdProduccionDetalle);
        return $http.get('delete-falla',{params:dat}).success(function(data) {
            console.log(data);
            $scope.detalles = data;
        });
    };
    
    /*$scope.saveUser = function() {
    // $scope.user already updated!
    return $http.post('save-produccion', $scope.produccion).error(function(err) {
      if(err.field && err.msg) {
        // err like {field: "name", msg: "Server-side error for this username!"} 
        $scope.editableForm.$setError(err.field, err.msg);
      } else { 
        // unknown error
        $scope.editableForm.$setError('name', 'Unknown error!');
      }
    });
    };

    // remove user
    $scope.deleteDetalle = function(index) {
      $scope.users.splice(index, 1);
    };

    // add user
    */
});